/**
 * Integer.h
 *
 * Version: $Id: Integer.h 76 2012-01-07 11:53:38Z s8376@pjwstk.edu.pl $
 */

#ifndef INTEGER_H_
#define INTEGER_H_

#include <iostream>
#include <cstring>

using namespace std;

class Integer
{
    private:
        int m_val;
        //        char* name;
    public:
         Integer(int v = 0) :
            m_val(v)
        {
            //            name = strdup("A");
        }

        Integer operator+(Integer);
        friend Integer operator-(Integer, Integer);
        Integer operator-();
        Integer operator*(Integer);
        Integer operator/(Integer);
        friend bool operator==(const Integer&, const Integer&);
        friend bool operator<(const Integer&, const Integer&);
        friend bool operator<(const Integer&, int);
        friend bool operator>(const Integer&, const Integer&);
        friend bool operator>(const Integer&, int);
        Integer& operator=(int);
        Integer& operator=(const Integer&);
        friend ostream& operator<<(ostream&, const Integer&); // referencja na obiekt, ustalona
        friend istream& operator>>(istream&, Integer&);
        Integer& operator++();
        Integer& operator++(int dummy);
        friend Integer& operator--(Integer& ob);
        friend Integer& operator--(Integer& ob, int dummy);
};

#endif /* INTEGER_H_ */
